Express v5
2024/10/15
10年ぶりのmajor versionのupdateらしい
GPT-4.icon
Express v5では、以下のような変更が導入されています。
1. Node.jsの古いバージョンのサポート終了:
Node.js 18以降が必須になり、古いバージョンのNode.jsのサポートが終了しました。これにより、パフォーマンスとメンテナビリティの向上が期待されます。
2. パスマッチングと正規表現の変更:
path-to-regexp@8.xにアップデートされ、以前の0.xバージョンとは異なるパスの書き方が必要です。
正規表現を使ったサブエクスプレッション(例: /:foo(\d+))はセキュリティリスク(ReDoS攻撃)を避けるために廃止されました。
*や?の扱いが変わり、予約された文字(例: (), [])も増えました。
3. Promiseのサポート:
ミドルウェア内でPromiseがサポートされ、非同期関数内でエラーが発生した場合も、自動的に次のエラーハンドリングミドルウェアに引き渡されます。
4. Body Parserの変更:
bodyParser()の組み合わせミドルウェアが廃止され、req.bodyが常に初期化される挙動が変更されました。
Brotli圧縮形式のサポートが追加されました。
5. メソッドシグネチャの整理:
res.send(status, body)のようなシグネチャが廃止され、一貫性を持ったAPIに統一されました。
res.redirect('back')やres.location('back')のような「マジック文字列」はサポートされなくなり、req.get('Referrer') || '/'を使用する必要があります。
6. その他の変更:
パラメータはすべて名前付きになり、数値でのパラメータ取得が廃止されました。
マイグレーションガイドやセキュリティ対策ガイドが提供されています。
これにより、Expressのセキュリティ強化と、よりモダンで一貫性のあるAPI設計が進められています。